package com.elder.business.mapper;

import java.util.List;
import java.util.Set;

import com.elder.business.domain.ApartmentRoomInfo;
import com.elder.business.domain.ApartmentRoomPrice;
import com.elder.business.domain.ElderlyApartmentBeds;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

/**
 * 公寓房间信息Mapper接口
 * 
 * @author elder
 * @date 2023-11-26
 */
public interface ApartmentRoomInfoMapper 
{
    /**
     * 查询公寓房间信息
     * 
     * @param id 公寓房间信息主键
     * @return 公寓房间信息
     */
    public ApartmentRoomInfo selectApartmentRoomInfoById(Long id);

    /**
     * 查询公寓房间信息列表
     * 
     * @param apartmentRoomInfo 公寓房间信息
     * @return 公寓房间信息集合
     */
    public List<ApartmentRoomInfo> selectApartmentRoomInfoList(ApartmentRoomInfo apartmentRoomInfo);

    /**
     * 新增公寓房间信息
     * 
     * @param apartmentRoomInfo 公寓房间信息
     * @return 结果
     */
    public int insertApartmentRoomInfo(ApartmentRoomInfo apartmentRoomInfo);

    /**
     * 修改公寓房间信息
     * 
     * @param apartmentRoomInfo 公寓房间信息
     * @return 结果
     */
    public int updateApartmentRoomInfo(ApartmentRoomInfo apartmentRoomInfo);

    /**
     * 删除公寓房间信息
     * 
     * @param id 公寓房间信息主键
     * @return 结果
     */
    public int deleteApartmentRoomInfoById(Long id);

    /**
     * 批量删除公寓房间信息
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteApartmentRoomInfoByIds(Long[] ids);

    List<ApartmentRoomInfo> getApartmentRoomInfo(@Param("apartmentId") Long apartmentId,@Param("roomType") Integer roomType,@Param("roomStatus") Integer roomStatus);

    Integer updateApartmentRoomPeopleInfo(@Param("roomId") Long roomId,@Param("roomStatus") Integer roomStatus);

    public ApartmentRoomInfo getApartmentRoomInfoByRoomId(Long roomId);

    public List<ApartmentRoomPrice> getRoomPriceInfo();

    public List<ApartmentRoomPrice> getApartmentRoomPriceList(@Param("createTime") Long createTime, @Param("applyStatus") Integer applyStatus);

    public Integer updateRoomPriceInfo(@Param("roomPriceId")Long roomPriceId,@Param("roomRemark") String roomRemark,@Param("roomPrice") String roomPrice,@Param("nurseContent") String nurseContent,@Param("applyStatus") Integer applyStatus);

    public Integer addRoomPriceInfo(ApartmentRoomPrice apartmentRoomPrice);

    List<ApartmentRoomInfo> getRoomIfoList();

    List<ApartmentRoomInfo> getApartmentRoomListByRoomCode(@Param("roomCode") String roomCode);


    ApartmentRoomPrice getRoomPriceInfoByPriceId(@Param("priceId") Long priceId);

    List<ApartmentRoomInfo> getRoomInfoList();

    List<ApartmentRoomInfo> getApartmentRoomInfoByRoomIds(@Param("roomIds") List<Long> roomIds);

    List<ApartmentRoomInfo> getRoomInfoByNurseId(@Param("memberIds") List<Long> memberIds);

    List<ApartmentRoomInfo> getNurseRoomInfoList();

    Integer updateRoomNurseSon(@Param("roomIds") List<Long> roomIds,@Param("memberId") Long memberId);

    List<ElderlyApartmentBeds> getRoomBedInfoByNurseId(@Param("memberId") Long memberId);
}
